package org.dxy.domain.event.workorder;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 工单事件类型枚举
 * @author dxy
 */
@Getter
@AllArgsConstructor
public enum WorkOrderEventTypeEnum {
    /** 工单创建 */
    CREATED("created", "新建"),
    
    /** 工单更新 */
    UPDATED("updated", "工单更新"),
    
    /** 工单下达 */
    RELEASED("released", "工单下达"),
    
    /** 工单开始生产 */
    STARTED("started", "工单开始生产"),
    
    /** 工单暂停 */
    SUSPENDED("suspended", "工单暂停"),
    
    /** 工单恢复 */
    RESUMED("resumed", "工单恢复"),
    
    /** 工单完成 */
    COMPLETED("completed", "工单完成"),
    
    /** 工单关闭 */
    CLOSED("closed", "工单关闭"),
    
    /** 工单取消 */
    CANCELLED("cancelled", "工单取消"),
    
    /** 工单删除 */
    DELETED("deleted", "工单删除"),
    
    /** 工单数量变更 */
    QUANTITY_CHANGED("quantity_changed", "工单数量变更"),
    
    /** 工单产线变更 */
    LINE_CHANGED("line_changed", "工单产线变更"),
    
    /** 工单工艺路线变更 */
    ROUTE_CHANGED("route_changed", "工单工艺路线变更"),
    
    /** 工单指定工艺路线 */
    ROUTE_ASSIGNED("route_assigned", "工单指定工艺路线"),
    
    /** 工单指定产线 */
    LINE_ASSIGNED("line_assigned", "工单指定产线"),
    
    /** 返工工单创建 */
    REWORK_CREATED("rework_created", "返工工单创建"),
    
    /** 返工工艺路线生成 */
    REWORK_ROUTE_GENERATED("rework_route_generated", "返工工艺路线生成"),
    
    /** 返工工序跳过 */
    REWORK_STEP_SKIPPED("rework_step_skipped", "返工工序跳过");
    
    private final String key;         // 用于标识事件类型的代码（小写）
    private final String description; // 事件类型的描述
}